﻿using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;

namespace BGCOP.CAVTOP.INNERDEFS
{
    public class Inner
    {
        
        #region Propriedades

        public string CARTAOB { get; set; }
        public bool renewMsgOnline { get; set; }
        public bool PasoMSGmolinete { get; set; }
        public bool PasoTarjeta { get; set; }
        public bool isMsgNeg { get; set; }
        public DateTime TimerMsgOnline { get; set; }
        public DateTime  TimerPingOnline { get; set; }
        public DateTime TimerMsgNeg { get; set; }
        public DateTime TimerAccess { get; set; }
        public int CountFails { get; set; }
        public bool isInnerNet { get; set; }
        public int IdInner { get; set; }
        public bool isOnline { get; set; }
        public bool isActive { get; set; }
        public int PuertoTCP { get; set; }
        public string nombre { get; set; }
        public string nombre2 { get; set; }
        public int Estado { get; set; }
        public int fallas { get; set; }
        public string style { get; set; }
        public string id { get; set; }
        public DateTime T1 { get; set; }
        public DateTime T2 { get; set; }
        public DateTime T3 { get; set; }
        public DateTime T4 { get; set; }
        public int Res { get; set; }
        public string sm { get; set; }
        public bool paso { get; set; }

        #region Numero
        private int _numero;
        public int Numero
        {
            get { return _numero; }
            set { 
                _numero = value;
                id = "Inner -> "  + value.ToString(CultureInfo.InvariantCulture);
            }
        }
        #endregion

        #region EstadoAtual
        private Enumeradores.EstadosInner _estadoAtual;
        public Enumeradores.EstadosInner EstadoAtual
        {
            get { return _estadoAtual; }
            set { _estadoAtual = value; }
        }
        #endregion

        #region TempoColeta
        private int _tempoColeta;
        public int TempoColeta
        {
            get { return _tempoColeta; }
            set { _tempoColeta = value; }
        }
        #endregion

        #region estaVivo
        private bool _estaVivo;
        public bool estaVivo
        {
            get { return _estaVivo; }
            set { _estaVivo = value; }
        }
        #endregion
        
        #region Catraca
        private bool _catraca;
        public bool Catraca
        {
            get { return _catraca; }
            set { _catraca = value; }
        }
        #endregion

        #region Biometrico
        private bool _biometrico;
        public bool Biometrico
        {
            get { return _biometrico; }
            set { _biometrico = value; }
        }
        #endregion

        #region Urna
        private bool _urna;
        public bool Urna
        {
            get { return _urna; }
            set { _urna = value; }
        }
        #endregion

        #region QtdDigitos
        private int _qtdDigitos;
        public int QtdDigitos
        {
            get { return _qtdDigitos; }
            set { _qtdDigitos = value; }
        }
        #endregion

        #region CountPingOnline
        private int _countPingOnline;

        public int CountPingOnline
        {
            get { return _countPingOnline; }
            set { _countPingOnline = value; }
        }
        #endregion

        private int _countReconexao;

        public int CountReconexao
        {
            get { return _countReconexao; }
            set { _countReconexao = value; }
        }


        private int _countPingFail;

        public int CountPingFail
        {
            get { return _countPingFail; }
            set { _countPingFail = value; }
        }


        private int myVar;

        public int MyProperty
        {
            get { return myVar; }
            set { myVar = value; }
        }

        private int _countRepeatPingOnline;
        public int CountRepeatPingOnline
        {
            get { return _countRepeatPingOnline; }
            set { _countRepeatPingOnline = value; }
        }

        private bool _flagMensagemTemporizada;
        public bool FlagMensagemTemporizada
        {
            get { return _flagMensagemTemporizada; }
            set { _flagMensagemTemporizada = value; }
        }

        private DateTime _teporizador;
        public DateTime Temporizador
        {
            get { return _teporizador; }
            set { _teporizador = value; }
        }

        private DateTime _temporizadorErroComSerial;
        /// <summary>
        /// Temporizador resposável por testar quando a conexão serial esta com Erro, recebe Datetime.now quando receber um erro do comando Receber
        /// Dados Online..
        /// </summary>
        public DateTime TemporizadorErroComSerial
        {
            get { return _temporizadorErroComSerial; }
            set { _temporizadorErroComSerial = value; }
        }


        #endregion

        #region Métodos

        #region ToString
        public override string ToString()
        {
            //return base.ToString();
            return "Inner: " + this.Numero.ToString() + " | Qtd.Dig: " + this.QtdDigitos.ToString() + " | Catraca: " + this.Catraca.ToString() + " | BIO: " + this.Biometrico.ToString();
        }
        #endregion

        #endregion
    }
}
